#pragma once

#include "IXBaseObj.h"

class ExportXSkinLib IXTrayIconCallback
{
public:
    virtual ~IXTrayIconCallback();
    virtual void STDMETHODCALLTYPE  OnTrayMsg(WPARAM wParam, LPARAM lParam) = 0;
};

class ExportXSkinLib IXTrayIconMgr : public IXBaseObj
{
    DEF_INTERFACE(IXTrayIconMgr, _T("{4C3B47F9-EE09-4175-AC3E-BBF336934400}"));

public:
    virtual ~IXTrayIconMgr(){}

    virtual UINT STDMETHODCALLTYPE AddIcon(XICON xIcon, LPCTSTR szTip, IXTrayIconCallback* pCallback, UINT uFlags) = 0;

    virtual BOOL STDMETHODCALLTYPE RemoveIcon(UINT uId) = 0;
    virtual void STDMETHODCALLTYPE RemoveAllIcon() = 0;
    virtual BOOL STDMETHODCALLTYPE ModifyIcon(UINT uId, XICON xIcon) = 0;
    virtual BOOL STDMETHODCALLTYPE ModifyIcon(UINT uId, LPCTSTR szText) = 0;
    virtual BOOL STDMETHODCALLTYPE PopTrayTip(UINT uId, LPCTSTR szTitle, LPCTSTR szText, UINT uTimeOut, DWORD dwIconType) = 0;
    virtual BOOL STDMETHODCALLTYPE HideTrayTip(UINT uId) = 0;
};

